{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This demo presents the usage of NiftyNet's image sampler implemented at `niftynet.contrib.dataset_sampler.*`\n",
    "\n",
    "What's a `sampler`?\n",
    "\n",
    "The sampler takes an image reader as input, produces image windows sampled from each image.\n",
    "\n",
    "Why `sampler`?\n",
    "\n",
    "In many cases in medical imaging applications, deep neural networks operate on image windows instead of the entire images/datasets, partly due to the GPU memory limitation and training efficiencies. The sampler provides ready-to-use interfaces to generate image windows, works well with `tf.data.Dataset`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Before the demo..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First make sure the source code is available, and import the module.\n",
    "\n",
    "For NiftyNet installation, please checkout:\n",
    "\n",
    "http://niftynet.readthedocs.io/en/dev/installation.html\n",
    "\n",
    "For demonstration purpose we download some demo data to `~/niftynet/data/`\n",
    "\n",
    "For visualisation we install `matplotlib`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accessing: https://cmiclab.cs.ucl.ac.uk/CMIC/NiftyNetExampleServer\n",
      "mr_ct_regression_model_zoo_data: OK. \n",
      "Already downloaded. Use the -r option to download again.\n",
      "Requirement already satisfied: matplotlib in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (2.2.2)\n",
      "Requirement already satisfied: pytz in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (2018.4)\n",
      "Requirement already satisfied: cycler>=0.10 in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (2.7.2)\n",
      "Requirement already satisfied: numpy>=1.7.1 in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (1.14.3)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (2.2.0)\n",
      "Requirement already satisfied: six>=1.10 in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from matplotlib) (1.11.0)\n",
      "Requirement already satisfied: setuptools in /usr/local/anaconda3/envs/tf/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (39.1.0)\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "niftynet_path = '/Users/foo/Documents/Niftynet/'\n",
    "sys.path.append(niftynet_path)\n",
    "\n",
    "from niftynet.utilities.download import download\n",
    "download('mr_ct_regression_model_zoo_data')\n",
    "\n",
    "!{sys.executable} -m pip install matplotlib"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Image as 'window'\n",
    "\n",
    "The simplest use case is treating each image as an image window. This is implemented by default using `ImageWindowDataset` class from `niftynet.contrib.dataset_sampler`. This class also acts as a base class, which can be extended to generate smaller windows using different sampling strategies."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1mINFO:niftynet:\u001b[0m \n",
      "\n",
      "Number of subjects 15, input section names: ['subject_id', 'CT']\n",
      "-- using all subjects (without data partitioning).\n",
      "\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 15 subjects from sections ('CT',) as input [CT]\n"
     ]
    }
   ],
   "source": [
    "from niftynet.io.image_reader import ImageReader\n",
    "from niftynet.contrib.dataset_sampler.image_window_dataset import ImageWindowDataset\n",
    "\n",
    "# creating an image reader.\n",
    "data_param = \\\n",
    "    {'CT': {'path_to_search': '~/niftynet/data/mr_ct_regression/CT_zero_mean',\n",
    "            'filename_contains': 'nii'}}\n",
    "reader = ImageReader().initialise(data_param)\n",
    "\n",
    "# creating a window sampler dataset from the reader\n",
    "sampler = ImageWindowDataset(reader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The sampler can be used as a numpy function, or a tensorflow operation.\n",
    "### Use the sampler as a numpy function\n",
    "Directly call the instance (this is actually invoking `sampler.layer_op`):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['CT', 'CT_location']) [[  0   0   0   0 288 288   1]] (1, 288, 288, 1, 1, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "windows = sampler()\n",
    "print(windows.keys(), windows['CT_location'], windows['CT'].shape)\n",
    "    \n",
    "import matplotlib.pyplot as plt\n",
    "plt.imshow(windows['CT'][0,:,:,0,0,0])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Use the sampler as a tensorflow op\n",
    "First add a iterator node, this is wrapped as `pop_batch_op()`,\n",
    "then run the op."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['CT', 'CT_location']) [[  5   0   0   0 288 288   1]] (1, 288, 288, 1, 1)\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "# adding the tensorflow tensors\n",
    "next_window = sampler.pop_batch_op()\n",
    "\n",
    "# run the tensors\n",
    "with tf.Session() as sess:\n",
    "    sampler.run_threads(sess) #initialise the iterator\n",
    "    windows = sess.run(next_window)\n",
    "    print(windows.keys(), windows['CT_location'], windows['CT'].shape)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- The location array `['MR_location']` represents the spatial coordinates of the window: \n",
    "  \n",
    "  `[subject_id, x_start, y_start, z_start, x_end, y_end, z_end]`\n",
    "\n",
    "\n",
    "- As a numpy function, the output shape is `(1, x, y, z, 1, 1)` which represents batch, width, height, depth, time points, channels. As a tensorflow op, the output shape is `(batch, x,[ y,][ z,] channels)`, which means the time dimension (not currently supported) and the spatial axes will be \"squeezed\" if the length along them is one. This simplifies the network definitions based on 2D or 3D outputs of the sampler.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Uniform sampler\n",
    "Generating image windows randomly from images.\n",
    "\n",
    "This is implemented by overriding the `layer_op` of `ImageWindowDataset`.\n",
    "\n",
    "The following code creates a uniform sampler and draws an image window.\n",
    "\n",
    "Two sections `MR` and `CT` are given as the input data parameter,\n",
    "the reader loads these sections by matching the filenames, and\n",
    "outputs the sampling windows (from the same spatial coordinates for all input images) as a dictionary.\n",
    "\n",
    "- When the spatial window sizes are different in `MR` and `CT`, concentric windows will be sampled.\n",
    "\n",
    "- When the spatial window size is (0, 0, 0), size of the first image from the reader will be used as the window size.\n",
    "\n",
    "- `windows_per_image` parameter specifies the number of image windows from each image returned by the reader."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1mINFO:niftynet:\u001b[0m \n",
      "\n",
      "Number of subjects 15, input section names: ['subject_id', 'MR', 'CT']\n",
      "-- using all subjects (without data partitioning).\n",
      "\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 15 subjects from sections ('MR',) as input [MR]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 15 subjects from sections ('CT',) as input [CT]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m initialised uniform sampler {'MR': (1, 80, 80, 1, 1, 1), 'MR_location': (1, 7), 'CT': (1, 80, 80, 1, 1, 1), 'CT_location': (1, 7)} \n",
      "[[  2  38  66   0 118 146   1]\n",
      " [  1  90 164   0 170 244   1]] (2, 80, 80, 1)\n",
      "[[  2  38  66   0 118 146   1]\n",
      " [  1  90 164   0 170 244   1]] (2, 80, 80, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from niftynet.io.image_reader import ImageReader\n",
    "from niftynet.contrib.dataset_sampler.sampler_uniform_v2 import UniformSampler\n",
    "\n",
    "# creating an image reader.\n",
    "# creating an image reader.\n",
    "data_param = \\\n",
    "    {'MR': {'path_to_search': '~/niftynet/data/mr_ct_regression/CT_zero_mean',\n",
    "            'filename_contains': 'nii',\n",
    "            'spatial_window_size': (80, 80, 1)},\n",
    "     'CT': {'path_to_search': '~/niftynet/data/mr_ct_regression/T2_corrected',\n",
    "            'filename_contains': 'nii',\n",
    "            'spatial_window_size': (80, 80, 1)},\n",
    "    }\n",
    "window_sizes = {'MR': (80, 80, 1), 'CT': (80, 80, 1)}\n",
    "reader = ImageReader().initialise(data_param)\n",
    "\n",
    "# uniform sampler returns windows of 32^3-voxels\n",
    "uniform_sampler = UniformSampler(\n",
    "    reader, window_sizes, batch_size=2, windows_per_image=5)\n",
    "\n",
    "\n",
    "import tensorflow as tf\n",
    "# adding the tensorflow tensors\n",
    "next_window = uniform_sampler.pop_batch_op()\n",
    "\n",
    "# run the tensors\n",
    "with tf.Session() as sess:\n",
    "    uniform_sampler.run_threads(sess) #initialise the iterator\n",
    "    windows = sess.run(next_window)\n",
    "    print(windows['MR_location'], windows['MR'].shape)\n",
    "    print(windows['CT_location'], windows['CT'].shape)\n",
    "\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.figure()\n",
    "plt.subplot(1,2,1)\n",
    "plt.imshow(windows['MR'][0,:,:,0])\n",
    "plt.subplot(1,2,2)\n",
    "plt.imshow(windows['CT'][0,:,:,0])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Grid sampler\n",
    "Generatoring image windows from images with a sliding window.\n",
    "\n",
    "This is implemented by overriding the `layer_op` of `ImageWindowDataset`.\n",
    "\n",
    "The `window_border` parameter controls the amount of overlap in between sampling windows.\n",
    "When the grid sampler is used for fully convolutional inference, the overlapping regions of the windows are cropped, so that the windows can be aggregated as an image at the resolution of the input.  \n",
    "\n",
    "See also: http://niftynet.readthedocs.io/en/dev/config_spec.html#border"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1mINFO:niftynet:\u001b[0m \n",
      "\n",
      "Number of subjects 15, input section names: ['subject_id', 'CT']\n",
      "-- using all subjects (without data partitioning).\n",
      "\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 15 subjects from sections ('CT',) as input [CT]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m initialised window instance\n",
      "\u001b[1mINFO:niftynet:\u001b[0m initialised grid sampler {'CT': (1, 42, 42, 1, 1, 1), 'CT_location': (1, 7)}\n",
      "\u001b[1mINFO:niftynet:\u001b[0m grid sampling image sizes: {'CT': (288, 288, 1, 1, 1)}\n",
      "\u001b[1mINFO:niftynet:\u001b[0m grid sampling window sizes: {'CT': (42, 42, 1, 1, 1)}\n",
      "\u001b[1mINFO:niftynet:\u001b[0m yielding 121 locations from image\n",
      "\u001b[1mINFO:niftynet:\u001b[0m grid sampling image sizes: {'CT': (288, 288, 1, 1, 1)}\n",
      "\u001b[1mINFO:niftynet:\u001b[0m grid sampling window sizes: {'CT': (42, 42, 1, 1, 1)}\n",
      "\u001b[1mINFO:niftynet:\u001b[0m yielding 121 locations from image\n"
     ]
    }
   ],
   "source": [
    "from niftynet.io.image_reader import ImageReader\n",
    "from niftynet.contrib.dataset_sampler.sampler_grid_v2 import GridSampler\n",
    "\n",
    "# creating an image reader.\n",
    "data_param = \\\n",
    "    {'CT': {'path_to_search': '~/niftynet/data/mr_ct_regression/CT_zero_mean',\n",
    "            'filename_contains': 'nii'}}\n",
    "reader = ImageReader().initialise(data_param)\n",
    "\n",
    "# uniform sampler returns windows of 32^3-voxels\n",
    "uniform_sampler = GridSampler(reader, \n",
    "                              window_sizes=(42, 42, 1), \n",
    "                              window_border=(8,8,1), batch_size=1)\n",
    "\n",
    "\n",
    "import tensorflow as tf\n",
    "# adding the tensorflow tensors\n",
    "next_window = uniform_sampler.pop_batch_op()\n",
    "\n",
    "# run the tensors\n",
    "with tf.Session() as sess:\n",
    "    uniform_sampler.run_threads(sess) #initialise the iterator\n",
    "    subject_id = 0\n",
    "    coords = []\n",
    "    while True:\n",
    "        windows = sess.run(next_window)\n",
    "        if not subject_id == windows['CT_location'][0,0]:\n",
    "            break;\n",
    "        #print(windows.keys(), windows['MR_location'], windows['MR'].shape)\n",
    "        coords.append(windows['CT_location'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualisation of the window coordinates (change `window_sizes` and `window_border` to see different window allocations):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(288, 288, 1, 1, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "from matplotlib.collections import PatchCollection\n",
    "\n",
    "f, (ax1, ax) = plt.subplots(1,2)\n",
    "\n",
    "# show image\n",
    "_, img, _ = reader(idx=0)\n",
    "print(img['CT'].shape)\n",
    "plt.subplot(1,2,1)\n",
    "plt.imshow(img['CT'][:,:,0,0,0])\n",
    "\n",
    "# show sampled windows\n",
    "all_patch = []\n",
    "for win in np.concatenate(coords, axis=0):\n",
    "    patch = patches.Rectangle(\n",
    "        (win[1], win[2]),\n",
    "        win[4]-win[1], win[5]-win[2], linewidth=1)\n",
    "    all_patch.append(patch)\n",
    "all_pc = PatchCollection(\n",
    "    all_patch, alpha=0.1, edgecolor='r', facecolor='r')\n",
    "ax.add_collection(all_pc)\n",
    "ax.set_xlim([0, np.max(coords, axis=0)[0,4]])\n",
    "ax.set_ylim([0, np.max(coords, axis=0)[0,5]])\n",
    "ax.set_aspect('equal', 'datalim')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Weighted sampler\n",
    "Generatoring image windows from images with a sampling prior of the foreground.\n",
    "\n",
    "This sampler uses a cumulative histogram for fast sampling, works with both continous and discrete maps.\n",
    "It is implemented by overriding the `layer_op` of `ImageWindowDataset`.\n",
    "\n",
    "Weight map can be specified by an input specification with `sampler` as the key.\n",
    "\n",
    "The following example uses a binary mask as the weight map."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1mINFO:niftynet:\u001b[0m \n",
      "\n",
      "Number of subjects 15, input section names: ['subject_id', 'CT', 'sampler']\n",
      "-- using all subjects (without data partitioning).\n",
      "\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 1 subjects from sections ('CT',) as input [CT]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 1 subjects from sections ('sampler',) as input [sampler]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m initialised uniform sampler {'CT': (100, 12, 12, 1, 1, 1), 'CT_location': (100, 7), 'sampler': (100, 12, 12, 1, 1, 1), 'sampler_location': (100, 7)} \n",
      "\u001b[1mINFO:niftynet:\u001b[0m Initialised weighted sampler window instance\n"
     ]
    }
   ],
   "source": [
    "from niftynet.io.image_reader import ImageReader\n",
    "from niftynet.contrib.dataset_sampler.sampler_weighted_v2 import WeightedSampler\n",
    "\n",
    "# creating an image reader.\n",
    "data_param = \\\n",
    "    {'CT':      {'path_to_search': '~/niftynet/data/mr_ct_regression/CT_zero_mean',\n",
    "                 'filename_contains': 'PAR.nii.gz'},\n",
    "     'sampler': {'path_to_search': '~/niftynet/data/mr_ct_regression/T2_mask',\n",
    "                 'filename_contains': 'nii'}}\n",
    "reader = ImageReader().initialise(data_param)\n",
    "\n",
    "weighted_sampler = WeightedSampler(\n",
    "    reader, window_sizes=(12, 12, 1), batch_size=1, windows_per_image=100)\n",
    "\n",
    "import tensorflow as tf\n",
    "# adding the tensorflow tensors\n",
    "next_window = weighted_sampler.pop_batch_op()\n",
    "\n",
    "# run the tensors\n",
    "with tf.Session() as sess:\n",
    "    weighted_sampler.run_threads(sess) #initialise the iterator\n",
    "    coords = []\n",
    "    for _ in range(200):\n",
    "        windows = sess.run(next_window)\n",
    "        #print(windows.keys(), windows['CT_location'], windows['CT'].shape)\n",
    "        coords.append(windows['CT_location'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(288, 288, 1, 1, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "from matplotlib.collections import PatchCollection\n",
    "\n",
    "f, (ax1, ax) = plt.subplots(1,2)\n",
    "\n",
    "# show image\n",
    "_, img, _ = reader(idx=0)\n",
    "print(img['CT'].shape)\n",
    "plt.subplot(1,2,1)\n",
    "plt.imshow(img['CT'][:,:,0,0,0])\n",
    "#plt.subplot(1,2,2)\n",
    "ax.imshow(img['sampler'][:,:,0,0,0])\n",
    "\n",
    "# show sampled windows\n",
    "all_patch = []\n",
    "for win in np.concatenate(coords, axis=0):\n",
    "    patch = patches.Rectangle(\n",
    "        (win[2], win[1]),\n",
    "        win[5]-win[2], win[4]-win[1], linewidth=1)\n",
    "    all_patch.append(patch)\n",
    "all_pc = PatchCollection(\n",
    "    all_patch, alpha=0.5, edgecolor='r', facecolor='r')\n",
    "ax.add_collection(all_pc)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Balanced sampler\n",
    "Generatoring image windows from images with a sampling prior of the foreground.\n",
    "\n",
    "This sampler generates image windows from a discrete label map as if every label\n",
    "had the same probability of occurrence.\n",
    "It is implemented by overriding the `layer_op` of `ImageWindowDataset`.\n",
    "\n",
    "Weight map can be specified by an input specification with `sampler` as the key.\n",
    "The following example uses a foreground mask as the weight map."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1mINFO:niftynet:\u001b[0m \n",
      "\n",
      "Number of subjects 15, input section names: ['subject_id', 'CT', 'sampler']\n",
      "-- using all subjects (without data partitioning).\n",
      "\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 1 subjects from sections ('CT',) as input [CT]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m Image reader: loading 1 subjects from sections ('sampler',) as input [sampler]\n",
      "\u001b[1mINFO:niftynet:\u001b[0m initialised uniform sampler {'CT': (100, 12, 12, 1, 1, 1), 'CT_location': (100, 7), 'sampler': (100, 12, 12, 1, 1, 1), 'sampler_location': (100, 7)} \n",
      "\u001b[1mINFO:niftynet:\u001b[0m Initialised balanced sampler window instance\n"
     ]
    }
   ],
   "source": [
    "from niftynet.io.image_reader import ImageReader\n",
    "from niftynet.contrib.dataset_sampler.sampler_balanced_v2 import BalancedSampler\n",
    "\n",
    "# creating an image reader.\n",
    "data_param = \\\n",
    "    {'CT':      {'path_to_search': '~/niftynet/data/mr_ct_regression/CT_zero_mean',\n",
    "                 'filename_contains': 'PAR.nii.gz'},\n",
    "     'sampler': {'path_to_search': '~/niftynet/data/mr_ct_regression/T2_mask',\n",
    "                 'filename_contains': 'nii'}}\n",
    "reader = ImageReader().initialise(data_param)\n",
    "\n",
    "balanced_sampler = BalancedSampler(\n",
    "    reader, window_sizes=(12, 12, 1), windows_per_image=100)\n",
    "\n",
    "import tensorflow as tf\n",
    "# adding the tensorflow tensors\n",
    "next_window = balanced_sampler.pop_batch_op()\n",
    "\n",
    "# run the tensors\n",
    "with tf.Session() as sess:\n",
    "    balanced_sampler.run_threads(sess) #initialise the iterator\n",
    "    coords = []\n",
    "    for _ in range(200):\n",
    "        windows = sess.run(next_window)\n",
    "        #print(windows.keys(), windows['CT_location'], windows['CT'].shape)\n",
    "        coords.append(windows['CT_location'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualisation of the window coordinates (change `data_param` see different window allocations):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(288, 288, 1, 1, 1)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "from matplotlib.collections import PatchCollection\n",
    "\n",
    "f, (ax1, ax) = plt.subplots(1,2)\n",
    "\n",
    "# show image\n",
    "_, img, _ = reader(idx=0)\n",
    "print(img['CT'].shape)\n",
    "plt.subplot(1,2,1)\n",
    "plt.imshow(img['CT'][:,:,0,0,0])\n",
    "#plt.subplot(1,2,2)\n",
    "ax.imshow(img['sampler'][:,:,0,0,0])\n",
    "\n",
    "# show sampled windows\n",
    "all_patch = []\n",
    "for win in np.concatenate(coords, axis=0):\n",
    "    patch = patches.Rectangle(\n",
    "        (win[2], win[1]),\n",
    "        win[5]-win[2], win[4]-win[1], linewidth=1)\n",
    "    all_patch.append(patch)\n",
    "all_pc = PatchCollection(\n",
    "    all_patch, alpha=0.5, edgecolor='r', facecolor='r')\n",
    "ax.add_collection(all_pc)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:tf]",
   "language": "python",
   "name": "conda-env-tf-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
